package com.offdissys.common.core.web.domain;

import com.offdissys.common.core.constant.ResultEnum;
import com.offdissys.common.core.constant.ResultEnumInterface;
import com.offdissys.common.core.exception.CommException;
import com.offdissys.common.core.response.Result;


/**
 * @ClassName ResultBuilder
 * @Description 响应基本
 * @Author zhanghaiwen
 * @Date 2020/1/9 14:34
 * @Version 6.1.1
 **/
@SuppressWarnings("unchecked")
public class ResultBuilder{
    /**
     * 自定义返回数据类型
     * @param object
     * @return
     */
    public static Result SUCCESS(Object object) {
        Result result = SUCCESS();
        result.setData(object);
        return result;
    }

    /**
     * 自定义返回成功类型
     * @return
     */
    public static Result SUCCESS() {
        return SUCCESS(ResultEnum.SUCCESS);
    }

    /**
     * 自定义返回失败数据类型
     * @param resultEnumInterface
     * @return
     */
    public static Result SUCCESS(ResultEnumInterface resultEnumInterface) {
        Result result =Result.builder()
                .code(resultEnumInterface.getCode())
                .msg(resultEnumInterface.getMsg())
                .build();
        return result;
    }

    /**
     * 自定义返回失败数据类型
     * @param commException
     * @return
     */
    public static Result SUCCESS(CommException commException) {
        Result result =Result.builder()
                .code(commException.getCode())
                .msg(commException.getErrorMsg())
                .build();
        return result;
    }
}
